The MPEG-4 standard defines a syntax for video bit streams which allows interoperability between various encoders and decoders. Standards describe many video tools, but implementing all of them can result in a too high complexity for most applications. To offer more flexibility in the choice of available tools and encoder/decoder complexity, the standard further defines profiles, which are subsets of the syntax limited to particular tools.
For instance, the Simple Profile (SP) is a subset of the entire bit stream syntax which includes in MPEG terminology: I and P VOPs, AC/DC prediction, 1 or 4 motion vectors per macroblock, unrestricted motion vectors and half pixel motion compensation. The Advanced Simple Profile (ASP) is a superset of the SP syntax: it includes the SP coding tools, and adds B VOPs, global motion compensation, interlaced pictures and quarter pixel motion compensation where interpolation filters are different from the ones used in half-pixel motion compensation.
In some devices with limited CPU resources or power resources, it can be advantageous to use hardware accelerated functions to carry on some of the decoding operations, even if the hardware IPs are not capable to perform the decoding operations in a conformant way. This results in decoding errors that accumulate and create a drift in the resulting images.
The document US 2004/0057521 discloses a transcoder that converts a bit stream into a corresponding but differently coded bit stream. Said transcoder implements a rounding method where any quarter pixel motion vector of the input is converted to the nearest half pixel value or where the output vector is made the largest valid output vector with the same direction as the input vector. The use of such rounding policies leads to a drift in successive images, said drift being created along the prediction path.